package com.csst.dao;

import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.List;

public interface DAO<T> {
	/**
	 * 返回总记录数
	 * @return
	 */
	public long getCount();
	/**
	 * 保存数据
	 * @param entity
	 */
	public abstract void save(T entity);

	/**
	 * 删除数据
	 * @param entityIDs 删除的实体的ID
	 */
	public abstract void delete(Serializable... entityIDs);

	/**
	 * 数据更新
	 * @param entity
	 */
	public abstract void update(T entity);

	/**
	 * 分页数据
	 * @param firstResult
	 * @param maxResult
	 * @return
	 */
	public abstract List<T> getScrollData(final int firstResult,
			final int maxResult);
	
	public abstract List<T> getScrollData(final int firstResult, final int maxResult,LinkedHashMap<String, String> orderBy);

	public abstract T getById(Serializable entityID);
}